/*
 * StatusCodes.h
 *
 *  Created on: 20/mag/2013
 *      Author: Ialenti Andrea, Marangon Fabio
 */

#ifndef STATUSCODES_H_
#define STATUSCODES_H_

#define CPX_SUCCESS		0

enum _status {

	//	Success status.
	SUCCESS,

	//	Error status related to memory allocation or initialization.
	ERR_MEM_ALLOC,

	//	Error statuses related to file read/write operations.
	ERR_READ_FILE,
	ERR_WRITE_FILE,

	//	Error status related to plot functions.
	ERR_PLOT,

	//	Error status related to problem simplification.
	ERR_SIMPL_PROB,
	ERR_RM_EDGES,

	//	Error status related to graph import.
	ERR_IMPORT_GRAPH,

	//	Generic error status related to any CPLEX function error.
	ERR_CPX,

	//	Error status related to CPLEX problem creation.
	ERR_CREATE_PROB,

	//	Generic error status for the 'Tester.c' module.
	ERR_TESTER,

	//	Generic error status for the 'main.c' module.
	ERR_MAIN,

	//	Generic error status related to time constraints.
	ERR_TIME,

	//	Generic error used for the branch and bound algorithm.
	ERR_BB_GENERIC,

	//	Generic error.
	ERR_GENERIC
};
typedef enum _status Status;

//	Getter method for the human-readable status message.
char* getStatusMessage(Status s);

//	Getter method for the int coded status message.
int getStatusCode(Status s);

#endif /* STATUSCODES_H_ */
